package com.ucode.application.form.crm;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import com.ucode.springboot.starter.web.validator.annotation.CheckMember;
import com.ucode.springboot.starter.web.validator.group.AddGroup;
import com.ucode.springboot.starter.web.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@SuppressWarnings("serial")
@ApiModel(value="跟进记录")
public class FollowupRecordForm implements Serializable{

    /**
     * 活动类型:1、销售工作2、售后工作3、其他
     */
    @ApiModelProperty(value = "活动类型:1、销售工作2、售后工作3、其他",required=true)
    private Integer activityType;
    /**
     * 下次回访时间
     */
    @ApiModelProperty(value = "下次回访时间",required=false)
    private Date nextTime;
    /**
     * 跟进内容
     */
    @ApiModelProperty(value = "跟进内容",required=false)
    @Length(max=500,message = "跟进内容最大长度500字符", groups = {AddGroup.class,UpdateGroup.class})
    private String content;
    /**
     * 附件Id集合
     */
    @ApiModelProperty(value = "附件Id集合",required=false)
    private List<Long> fileIds;
    /**
     * 图片Ids
     */
    @ApiModelProperty(value = "图片Id集合",required=false)
    private List<Long> imgIds;
    /**
     * 关联联系人
     */
    @ApiModelProperty(value = "关联联系人",required=false)
    private Long contactsId;
    /**
     * 目标类型:1线索2客户3商机4合同
     */
    @ApiModelProperty(value = "目标类型:1线索2客户3商机4合同",required=false,example="1")
    @NotNull(message="目标类型不能为空", groups = {AddGroup.class,UpdateGroup.class})
    @CheckMember(value={"1","2","3","4"},message="客户级别非法", groups = {AddGroup.class,UpdateGroup.class})
    private Integer targetType;
    /**
     * 跟进目标Id
     */
    @ApiModelProperty(value = "跟进目标",required=false,example="1")
    @NotNull(message="跟进目标不能为空", groups = {AddGroup.class,UpdateGroup.class})
    private Long targetId;
    
    public Integer getActivityType() {
        return activityType;
    }
    public void setActivityType(Integer activityType) {
        this.activityType = activityType;
    }
    public Date getNextTime() {
        return nextTime;
    }
    public void setNextTime(Date nextTime) {
        this.nextTime = nextTime;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public List<Long> getFileIds() {
        return fileIds;
    }
    public void setFileIds(List<Long> fileIds) {
        this.fileIds = fileIds;
    }
    public List<Long> getImgIds() {
        return imgIds;
    }
    public void setImgIds(List<Long> imgIds) {
        this.imgIds = imgIds;
    }
    public Long getContactsId() {
        return contactsId;
    }
    public void setContactsId(Long contactsId) {
        this.contactsId = contactsId;
    }
    public Integer getTargetType() {
        return targetType;
    }
    public void setTargetType(Integer targetType) {
        this.targetType = targetType;
    }
    public Long getTargetId() {
        return targetId;
    }
    public void setTargetId(Long targetId) {
        this.targetId = targetId;
    }
}
